<?php

//原点 2020年8月1日11:26:17 解析搜索时间
function set_create_time($value)
{
    $value = explode(' - ', $value);
    return array('between', '' . strtotime($value[0]) . ',' . strtotime($value[1]) . '');
}

function get_suffix()
{
    return ['元', '倍', '天', '个', '%', '台', '件'];
}

function get_layDate_type()
{
    return array(
        'year_1' => '年选择器',
        'month_1' => '年月选择器',
        'time_1' => '时间选择器',
        'date_1' => '日期选择器',
        'datetime_1' => '日期时间选择器',
        'year_2' => '年范围',
        'month_2' => '年月范围',
        'time_2' => '时间范围',
        'date_2' => '日期范围',
        'datetime_2' => '日期时间范围'
    );
}

//原点 2020年7月13日10:20:32 解析时间配置
function set_layDate($value, $format)
{
    $format = explode('_', $format);
    switch ($format[0]) {
        case "year":
        case "month":
        case "date":
        case "datetime":
            if ($format[1] == 1) {
                $value = strtotime($value);
            } else {
                $value = explode(' - ', $value);
                $value[0] = strtotime($value[0]);
                $value[1] = strtotime($value[1]);
                $value = implode(',', $value);
            }
            break;
        case "time":
            if ($format[1] != 1) {
                $value = implode(',', explode(' - ', $value));
            }
            break;
    }
    return $value;
}

//原点 2020年7月27日15:37:16  获取时间配置
function get_layDate($value, $format)
{
    $format = explode('_', $format);
    switch ($format[0]) {
        case "year":
        case "month":
        case "date":
        case "datetime":
            $s = ["year" => 'Y', "month" => 'Y-m', "date" => 'Y-m-d', "datetime" => 'Y-m-d H:i:s'];
            if ($format[1] == 1) {
                $value = $value ? date($s[$format[0]], $value) : '';
            } else {
                $value = explode(',', $value);
                $value[0] = date($s[$format[0]], $value[0]);
                $value[1] = date($s[$format[0]], $value[1]);
                $value = implode(' - ', $value);
            }
            break;
        case "time":
            if ($format[1] != 1) {
                $value = implode(' - ', explode(',', $value));
            }
            break;
    }

    return $value;
}

/**
 * @param string $group 配置分组
 * @return string
 * 原点 2020年5月27日18:13:14 获取配置的分组
 */
function get_config_group($group = 0)
{
    $list = cache('system')['config_group_list'];
    if (!is_array($list)) {
        $list = parse_config_attr($list);
    }
    return $group ? $list[$group] : $list;
}

/**
 * 获取配置的类型
 * @param string $type 配置类型
 * @return string
 * 原点 2020年5月27日18:13:14 获取配置类型
 */
function get_config_type($type = 0)
{
    $list = cache('system')['config_type_list'];
    if (!is_array($list)) {
        $list = parse_config_attr($list);
    }
    return $type ? $list[$type] : $list;
}

/**
 * @param $string
 * @return array|array[]|false|string[]
 * 原点 2020年5月27日18:12:58 解析字符串为数组
 */
function parse_config_attr($string)
{
    $array = preg_split('/[,;\r\n]+/', trim($string, ",;\r\n"));
    if (strpos($string, ':')) {
        $value = array();
        foreach ($array as $val) {
            list($k, $v) = explode(':', $val);
            $value[$k] = $v;
        }
    } else {
        $value = $array;
    }
    return $value;
}

/**
 * 整理菜单树方法
 * @param $param
 * @return array
 */
function prepareMenu($param)
{
    $parent = []; //父类
    $child = [];  //子类
    foreach ($param as $key => $vo) {

        if ($vo['pid'] == 1) {
            $vo['href'] = '#';
            $parent[] = $vo;
        } else {
            $vo['href'] = strstr($vo['name'], '/') ? url($vo['name']) : url($vo['name'] . '/index');
            $child[] = $vo;
        }
    }

    foreach ($parent as $key => $vo) {
        foreach ($child as $k => $v) {

            if ($v['pid'] == $vo['id']) {

                $parent[$key]['child'][] = $v;
            }

        }
    }

    unset($child);
    return $parent;
}

/**
 * 合并菜单树
 * @param $cate
 * @param int $pid
 * @param int $lvl
 * @param int $left_px
 * @return array
 */
function mergeMenu($cate, $pid = 0, $lvl = 0, $left_px = 0)
{
    $arr = array();

    foreach ($cate as $v) {
        if ($v['pid'] == $pid) {
            $v['lvl'] = $lvl + 1;
            $v['left_px'] = $left_px + 0;//左边距
            $arr[] = $v;
            $arr = array_merge($arr, mergeMenu($cate, $v['id'], $lvl + 1, $left_px + 40));
        }
    }
    return $arr;
}